<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // function Fn () {}
    // const fn = new Fn()
    // console.dir(Fn)
    // console.log(fn)

    /* 
    JS引擎在执行我们的代码前, 先执行它内置的一些代码
    Funtion/Object/Date/String/Array....函数定义的语句  提前执行了
    已经创建了这些函数对象, 后面我们就可以直接调用
    */
    new Function()
    new Object()

    function Foo () {}
    const f1 = new Foo()
    const f2 = new Foo()
    const o1 = new Object()
    const o2 = {}
    // 推论: Function的原型对象是Object的实例  错误的
    console.log(Function.prototype.__proto__===Object.prototype)
    console.log(Function.prototype) // 不是
    /* 
    JS引擎自动给Function的原型对象添加一个__proto__属性, 值为Object.prototype
    Function.prototype.__proto__ = Object.prototype
    */
  </script>
</body>
</html>